package nusar


class AlumnoController {

	def beforeInterceptor = [action:this.&autenticar]
	static defaultAction = "login"

	
	def autenticar(){
	
		// Parametros: El correo y password se reciben de login.gsp
		def correo
		def password
			
		// Conectarse con la BD de la UABC para comprobar que el correo existe (PENDIENTE)
		
		// Si existen, se obtiene la matricula del alumno(Base de datos UABC)
		def matricula
		
		// Se crea una sesion (session.user) y se direcciona a la vista principal.gsp
	
		// En caso de que no exista o no coincidan, mostrar un mensaje de error
	}
	
	
	// En esta vista el usuario es el que brinda la informacion
	def login(){}
	
	
	// Boton Salir, Vista Principal
	def logout(){
		
		// Se invalida la sesion
		
		// Se regresa a la pantalla de login
	}
	
	
	def principal(){
		
		// Obtener el objecto Alumno mediante la matricula para acceder a su informacion
		Alumno infoAlumno
		
		// Obtener las materias que cursa el alumno con sus horarios (Carga academica)
		def horarioAlumno
		
		// Obtenemos la solicitud del alumno
		def solicitud
		
		[infoAlumno: infoAlumno, horarioAlumno: horarioAlumno, solicitud: solicitud]
	}
	
	
	def crearSolicitud(){
	
		// Informacion sobre todas las materias disponibles y sus horarios (no cursadas por alumno)
		def materias_horario
		
		// Obtener las materias que cursa el alumno con sus horarios (Carga academica)
		def horarioAlumno
		
		[materias_horario: materias_horario, horarioAlumno: horarioAlumno]
	}

	
	def guardarMaterias(){
		
		// Parametros: Los ids de las materias se obtienen de la crearSolicitud.gsp
		def idMaterias = []
		
		// Verificar que haya al menos una materia seleccionada
		
		
		// En caso de ser alta:
		
		// Verificar que el alumno no este cursando una materia con el mismo nombre
		// Checar que la materia no se traslape con el horario del alumno
		// Verificar que no se esten cursando mas de 7 materias
		
		
		// Guardar las materias de la solicitud con el estado de "Borrador"
		def solicitudes = []
		
		// Regresar a la pantalla principal
		
	}
	
	
	def aceptarSolicitud(){
		
		// Se cambia el estado de la solicitud a "Pendiente"
		
		// Se le envia un mensaje al alumno
	}
	
	
	def eliminarMateriaSolicitud(){
		/*
		// Buscamos la materia que eliminaremos de la solicitud
		def materia = Solicitud.get(params.id)
		
		// Eliminar la materia de la solicitud
		def alumno = Alumno.get(1)
		alumno.solicitud.remove(materia)
		
		def materiasSolicitud = alumno.solicitud.materias
		
		render(template: "listS", model : [materiasSolicitud:materiasSolicitud])
		*/
	}
	
}
